Site A.T.L.A.N.T.I.C-83
COURS = Comprendre son ordinateur (Chapitre_4) - VERSION: 1.0 (M.A.J: 15/03/10)
- AUTEUR(s): Bernard GIACOMONI
Ecran large mobile
Retour
sommaire cours

IV.SYSTEMES D'EXPLOITATION

IV.1.OBJECTIFS ET PLAN DU CHAPITRE:


L'objectif de ce chapitre est de bien faire ressortir les fonctions principales d'un système d'exploitation et ses interactions avec le matériel.
Nous aborderons d'abord d'une manière générale le rôle du système d'exploitation, puis nous étudierons particulièrement quatre de ses fonctions principales:
  1. La gestion des processus et de la mémoire.
  2. Le pilotage des équipements matériels.
  3. La gestion du système de fichiers.
  4. La gestion de l'interface utilisateur.


IV.2.GENERALITES SUR LES SYSTEME D'EXPLOITATION:


IV.2.1.PROBLEMATIQUE DE LA GESTION INTERNE D'UN ORDINATEUR:

IV.2.1.1.PARTAGE DES RESSOURCES:

Quelle que soit la mission que l'on assigne à un ordinateur, l'accomplissement de celle-ci passe toujours par l'exécution d'un ou plusieurs processus logiciels. L'exécution d'un processus peut nécessiter l'utilisation d'équipements matériels (imprimante, écran d'affichage, liaison internet, etc...), de programmes (utilitaires divers) ou l'accès à des données (fichiers, URL web, etc.).


DEFINITION:
En informatique, on appelle RESSOURCE toute entité matérielle ou logicielle dont un processus peut solliciter l'utilisation au cours de son exécution.


Un ordinateur peut exécuter à un instant donné plusieurs processus différents: par exemple, rien ne vous empêche de lancer simultanément votre navigateur internet (pour faire une recherche) et un traitement de texte (pour noter au fur et à mesure les résultats de cette recherche), tout en gardant actif un logiciel de communication comme MSN. Or, la plupart des ressources ne peuvent être utilisées simultanément que par un nombre fini de processus (très souvent, un seul).


EXEMPLES:
  • Lorsqu'un processus est en train d'imprimer, l'imprimante qu'il utilise ne peut être utilisée par un autre processus. Ce dernier devra donc attendre la fin d'impression.
  • Pendant qu'un processus lit le contenu d'un fichier, il ne faut pas qu'un autre processus vienne modifier ce contenu. Là encore, le processus « écrivain » devra attendre la fin de lecture.
  • Lorsqu'un processus doit émettre un message sur une connexion réseau, il lui faut déposer ce message dans une zone mémoire appelée « file d'attente » des messages à émettre. Cette file ayant une dimension limitée, elle peut être pleine. Le processus devra donc attendre que des messages en attente d'émission soient effectivements émis pour pouvoir déposer son message.
Il est donc indispensable (surtout dans un environnement multitâche, ce qui est le cas de tous les ordinateurs modernes), de gérer la concurrence des différents processus pour l'accès aux ressources communes (écran, processeur, fichiers, équipements d'entrée-sortie, etc.).

IV.2.1.2.GESTION DES EQUIPEMENTS:

L'exposé sur la structure et le fonctionnement des ordinateurs, donné par les sous-chapitres précédents, nous laisse entrevoir la complexité de la gestion des échanges de données à l'intérieur d'un ordinateur et entre l'ordinateur et sa périphérie. De ce fait, il ne serait pas rationnel d'obliger chaque développeur créant un logiciel nouveau à recommencer à chaque fois la programmation des traitements liés au matériel lui-même, comme la gestion des échanges à travers un bus donné ou avec un équipement matériel particulier.
Il faut donc mettre à sa disposition des logiciels utilitaires que les processus pourront activer lorsqu'il voudront utiliser une ressource matérielle (émettre ou recevoir un message, lire l'heure courante de l'horloge interne, etc).


IV.2.1.3.GESTION DES DONNEES:

Un ordinateur doit assurer la gestion d'un grand nombre d'informations de types très différents (images, vidéo, textes, logiciels, etc.). Pour pouvoir utiliser ces informations d'une manière rationnelle, il est indispensable de les organiser de façon à pouvoir y accéder facilement. Il faut également assurer leur classement et conservation et contrôler les accès des différents utilisateurs.


IV.2.1.4.GESTION DES UTILISATEURS:

Enfin, pour qu'un ordinateur soit utilisable, il est indispensable de disposer d'un Interface Homme-Machine (IHM) permettant à des utilisateurs d'en activer les fonctionnalités et de contrôler leur exécution sans forcément maîtriser le fonctionnement interne de la machine.


IV.2.2.PRINCIPE FONDAMENTAL D'UN SYSTEME D'EXPLOITATION:

Le fonctionnement d'un ordinateur moderne (multi-tâches, multi-utilisateurs, multi-média, etc...) exige que tous les éléments de la problématique développée ci-dessus soient pris en compte. Comme toute activité interne, la résolution de cette problématique exige l'utilisation d'un logiciel particulier, appelé SYSTEME D'EXPLOITATION (Operating System, abrégé en O.S. en anglais).


Le système d'exploitation permet aux utilisateurs d'un système informatique de faire abstraction de la diversité et de la complexité des matériels et des traitements permettant la mise en oeuvre de ces matériels. A travers un système d'exploitation, l'utilisateur ne manipule plus des équipements informatiques, mais des concepts logiques beaucoup plus simples et intuitifs: fichiers, processus, connexions internet, etc.


EXEMPLE:
Un système d'exploitation permet à un utilisateur de manipuler des données au travers de la notion de FICHIER. Pour l'utilisateur, un fichier est un concept logique, un OBJET abstrait renfermant des informations et sur lequel on peut effectuer diverses opérations, telles que lire, écrire, modifier, supprimer. Dans la réalité, un fichier est un ensemble de zones d'enregistrement, rarement contigües, situées sur un support d'archivage (disque dur, par exemple). Lire un tel fichier entraîne un grand nombre d'opérations complexes: recherche des adresses des données sur le support d'archivage, positionnement des têtes de lecture, lecture des différentes zones, dialogue d'entrée-sortie avec le disque via le bus de connexion, etc. Le système d'exploitation MASQUE tous ces traitements et permet à l'utilisateur d'en FAIRE ABSTRACTION.


IV.2.3.ORGANISATION LOGIQUE D'UN SYSTEME D'EXPLOITATION:

Le schéma ci-dessous donne une idée générale de l'organisation logique d'un système d'exploitation:
Schema logique d'un O.S.

IV.2.3.1.POINTS D'ACCES AUX SERVICES:

Un système d'exploitation met à disposition des utilisateurs un certain nombre de «points d'accès» permettant de manipuler les objets logiques dont il a été question plus haut. Ces points d'accès correspondent à des logiciels appelés GESTIONNAIRES D'APPEL AU SYSTÈME (ou HANDLERS en anglais). Chaque handler est spécialisé dans la gestion d'un certain type d'objet et permet de réaliser des actions sur un de ces objets (nous aurons ainsi un handler permettant de créer un fichier, de le lire, de l'écrire, de changer son nom, de le supprimer, etc.).
Sur le schéma ci-contre, nous pouvons constater que ces handlers peuvent être utilisés soit directement, par les processus utilisateurs (par exemple, lorsque votre traitement de texte fait une sauvegarde automatique du document en cours, il active lui-même le handler ad-hoc), soit par les utilisateurs, à travers un poste de travail et un logiciel d'interface appelé SHELL et dont le rôle est de transformer les interactions des utilisateurs (frappes clavier, clics souris, etc.) en appels aux handlers.

IV.2.3.2.TRAITEMENTS INTERNES:

Les handlers agissent sur les traitements internes du système d'exploitation. Ces traitements appelés «services» ou «deamons», suivant les systèmes, assurent la gestion de fond des traitements: enchainement des tâches, la gestion des accès aux ressources, prise en compte des messages et événements entrants, gestion des alarmes, etc. Nous détaillerons ces traitements dans la suite du chapitre.

IV.2.3.3.LES PILOTES D'EQUIPEMENTS:

Nous voyons également apparaître les pilotes d'équipements matériels que nous avons déjà abordés au chapitre III. Ces pilotes permettent au système d'exploitation de faire abstraction de la complexité du traitement des BUS et des équipements matériels (un peut comme les handlers systèmes le font pour les utilisateurs). De ce fait, ils permettent à un système d'exploitation de traiter un nouvel équipement sans qu'il soit nécessaire de modifier ses traitements internes: il suffit d'intégrer un nouveau pilote respectant l'interface avec le système.


IV.2.3.4.LES SHELLS UTILISATEURS:

La plupart des systèmes d'exploitation (à l'exception de windows) peuvent accepter plusieurs types de shells, permettant ainsi de choisir l'interface homme-machine le plus adapté à l'utilisation que l'on veut faire de l'ordinateur.

IV.2.3.5.NOYAU D'UN SYSTEME D'EXPLOITATION:

L'existance de la couche d'interface formée par les pilotes d'équipement permet de rendre les traitements internes du système et le fonctionnement des handlers indépendants du type de matériel: on pourrait dire (en simplifiant un peut) que pour changer de matériel, il suffit de changer les pilotes ! Nous avons vu également que le choix des shells pouvaient être adaptés aux besoins de l'utilisateur (dans le schema ci-dessus, le noyau correspond à peu près à la partie teintée en outremer).
On peut donc distinguer dans un système d'exploitation une partie indépendante de l'environnement et une autre qui, au contraire, doit être choisie et configurée en fonction de cet environnement. La première partie est appelé NOYAU du système d'exploitation (KERNEL en anglais).

IV.2.3.6.INSTALLATION D'UN SYSTEME D'EXPLOITATION:

Ce qui précède permet de comprendre le déroulement de l'installation d'un système d'exploitation: celle-ci commence toujours par l'installation du NOYAU, qui est le même quelle que soit la configuration matérielle. La phase suivante consiste à configurer ce noyau en fonction des exigences des utilisateurs, puis à ajouter les pilotes adaptés au matériel.
Les systèmes d'exploitation modernes sont souvent accompagnés de logiciels d'installation perfectionnés qui détectent la configuration matérielle (via les fonctions avancées des bus) et installent automatiquement les bons pilotes. L'installation d'un système d'exploitation ne demande donc plus beaucoup de compétences, du moins, quand tout se passe bien (c'est à dire lorsque la configuration matérielle est «courante» et que tous les composants fonctionnent correctement). Sinon, un minimum de connaîssance de l'organisation des systèmes d'exploitation est indispensable.


IV.3.GESTION DES PROCESSUS ET DE LA MEMOIRE:


IV.3.1.GENERALITES:

La principale fonction d'un système d'exploitation (WINDOWS, LINUX, etc.) est d'ORDONNANCER l'exécution des processus (ou tâches) de la machine qu'il est chargé d'exploiter (PC, téléphone cellulaire, etc). L'ORDONNANCEMENT consiste à gérer l'attribution des différentes RESSOURCES du système aux différents processus en cours d'exécution. Dans le cas ou un processus en cours d'exécution veut accéder à une ressource R occupée, le système d'exploitation stoppe l'exécution de ce processus et le met en attente de la libération de cette ressource.


Les PROCESSEURS ne sont que des ressources matérielles du système. Lorsque le système d'exploitation lance ou stoppe l'exécution d'un processus, il ne fait que lui allouer ou lui désallouer cette ressource processeur. On peut donc dire que l'ordonnancement des tâches consiste à gérer l'attribution d'une ressource PROCESSEUR aux différentes tâches prètes. Dans le cas d'un ordinateur multiprocesseur, le système d'exploitation devra gérer l'attribution de chacun des processeurs aux processus en cours d'activité.


REMARQUE:
Les processus peuvent être exécutés à l'initiative des utilisateurs (par exemple, en double-cliquant sur un raccourci de commande ou un lien), mais aussi en réponse à des événements internes (par exemple: date et heure de déclenchement du scanning anti-virus atteinte), ou à des événements externes (exemple: réception de messages).


IV.3.2.CREATION ET LANCEMENT D'UN PROCESSUS:

Lorsqu'un processus n'est pas chargé en mémoire, on dit qu'il est à l'état DORMANT. Quand le système d'exploitation reçoit une requète de lancement d'un processus (par l'intermédiaire d'un handler, par exemple), il enchaîne les opérations suivantes:
  • Phase 1: Il commence par allouer dans la mémoire vive de l'ordinateur un espace suffisant pour contenir la copie du programme et les données dont il a besoin.
  • Phase 2: Puis, il lit sur le disque dur (ou un autre support permanent) le contenu du fichier correspondant au programme (fichier en langage symbolique translatable) et le charge dans la zone allouée (en utilisant le logiciel chargeur mentionné au chapitre II). Le processus est alors prèt à être lancé (état PRET).
  • Phase 3: l'ordonnanceur attribue alors un processeur au thread principal du nouveau processus, en fonction de la disponibilité de ceux-ci (ou de celui-ci, si le système est monoprocesseur). Si un processeur peut être attribué, le processus passe à l'état ACTIF. Sinon, il reste à l'état PRET jusqu'à ce qu'un processeur puisse se libérer.
C'est donc l'ORDONNANCEUR de tâches qui décide de l'instant oû le processus est effectivement mis à exécution, en fonction de la disponibilité du PROCESSEUR. En effet, celui-ci peut être occupé par l'exécution d'un autre processus: il faudra donc soit attendre que ce dernier soit terminé, soit interrompre son exécution. L'action qui sera effectuée dépendra du mode de gestion des tâches adopté et des urgences respectives de ces tâches.
En fin d'exécution du processus, le système d'exploitation libère la mémoire qui lui est allouée.


Lorsqu'un processus P en cours d'exécution doit, pour continuer de s'exécuter, utiliser une ressource non disponible, nous avons vu que le système d'exploitation réalloue le processeur à un autre processus jusqu'à la libération de cette ressource. Pendant cette période le processus P passe à l'état ATTENTE. Lorsque la ressource se libère, le processus P repasse à l'état PRÊT (et non à l'état ACTIF: c'est l'ordonnanceur qui relancera son exécution, toujours en fonction de la disponibilité du processus).


Execution des processus
COMMENTAIRES:
Dans le schéma ci-dessus, les processus 1 et 2 sont des copies en mémoire du même programme A. Ils exécutent donc les mêmes instructions., mais ne travaillent pas forcément sur les mêmes données: supposont, par exemple, que le programme A soit un traitement de texte (word, writer, etc.). Le processus n° 1 correspondrait au traitement de texte A lancé pour éditer un document (D1), alors que le processus n° 2 correspondrait au même traitement de texte A lancé pour éditer un autre document (D2). On voit bien que les deux processus utilisent le même programme, mais travaillent sur des données différentes. Il s'agit donc bien de deux tâches distinctes.


IV.3.3.ORDONNANCEMENT DE L'EXECUTION DES PROCESSUS:

La plupart des systèmes d'exploitation permettent d'exécuter simultanément plusieurs processus. On dit alors qu'ils sont MULTIPROCESSUS ou MULTITACHES. Cette simultanéïté peut être réelle, si la machine est équipés de plusieurs processeurs fonctionnant en parallèle ou seulement apparente dans le cas contraire.
Dans ce dernier cas, il existe globalement deux modes de gestion des processeurs: la gestion en TEMPS PARTAGE et la gestion par PRIORITES PREEMPTIVES.


IV.3.3.1.GESTION EN TEMPS PARTAGE (TIME SHEARING):

PRINCIPE:
Le système d'exploitation partage le temps d'exécution du processeur entre les processus qui se trouvent à l'état PRÊT, donnant l'impression pour l'utilisateur d'une exécution simultanée. Ce partage se fait habituellement par tranches de temps suffisamment petites (100 ms, par exemple) pour que l'utilisateur ne puisse pas se rendre compte de la commutation entre les threads des différents processus.


EXEMPLE:
Supposont que, comme dans la figure précédente, trois processus soient à l'état prèt et que chaque processus n'ait qu'un thread:


Gestion en temps partagé


IV.3.3.2.GESTION PAR PRIORITES PREEMPTIVES:

Dans ce mode, un niveau de priorité est attribué à chaque tâche (il s'agit d'un nombre entier positif ou nul). Lorsque plusieurs tâche sont à l'état prêt, c'est la plus prioritaire qui est lancée. Elle occupe le processeur jusqu'à la fin de son exécution, sauf dans deux cas:
  • Si une autre tâche plus prioritaire devient prète, le système d'exploitation interromp immédiatement la tâche en cours pour exécuter cette nouvelle tâche. On dit qu'il y a PREEMPTION de la ressource PROCESSEUR par cette nouvelle tâche. Dès que le processeur peut être réaffecté à la première tâche, l'exécution de celle-ci reprend à l'endroit ou elle avait été interrompue.
  • Si, pour pouvoir continuer son exécution, la tâche en cours doit attendre un événement (un message de validation, par exemple). A ce moment là, le processeur sera réaffecté à l'exécution de la tâche prète de priorité immédiatement inférieure. Lorsque l'événement attendu par la tâche mise en attente se produit, le système d'exploitation interromp immédiatement la tâche en cours et reprend l'exécution de la premiere tâche à l'endroit ou celle-ci avait été interrompue.
Gestion par priorites preemptives
Le schéma ci-contre donne une image de ce fonctionnement:


P1 est P2 sont deux processus. La priorité de P1 est supérieure à celle de P2, mais P1 a besoin, à un certain moment de son exécution, d'attendre un événement E1 (on peut par exemple supposer qu'il a besoin d'une information qu'un utilisateur va entrer par le clavier).


Les traces rouges horizontales matérialisent les périodes d'exécution de chaque processus par le processeur. Les traces horizontales en pointillés matérialisent les périodes d'attente des processus (S.E. Signifie: Système d'Exploitation).

IV.3.3.3.CHOIX DU MODE DE GESTION:

La plupart des systèmes supportent les deux modes de gestion: dans une même machine, certains processus peuvent être gérés par priorités préemptives alors que d'autres peuvent être gérés en temps partagé. Dans ce cas:
  • Deux tâches préemptives, mais possédant des priorités identiques se voient allouer les ressources sur lesquelles elles sont concurrentes suivant la rêgle du temps partagé.
  • Les tâches gérées en temps partagé sont considérées comme ayant toutes la même priorité, inférieure à celles de toutes les taches préemptives. De ce fait, une tâche gérée en temps partagé ne peut se voir attribuer une ressource (et en particulier, le processeur) que si aucune tâche préemptive n'est prête et non en attente.
Le mode de gestion en temps partagé est le mode «par défaut» de la plupart des systèmes d'exploitation. La gestion par priorités préemptive est surtout utilisée par les applications industrielles qui fonctionnement en «temps réel» ou par certaines fonctions systèmes qui doivent s'exécuter en priorité par rapport aux taches d'applications.


IV.3.3.4.GESTION DES TACHES LIEES AU MATERIEL:

Nous avons vu dans les chapitres précédents que les différents équipements matériels pouvaient provoquer des interruptions de programmes, en modifiant le contenu du compteur ordinal. Ces interruptions ont pour but de signaler des événements liés au fonctionnement de ces équipements:
  • Arrivée d'un message.
  • Signalisation d'un « top horaire » ( par exemple, signalisation de la fin d'un délais de temporisation).
  • Alarme de fonctionnement.
  • Mise sous ou hors tension.
  • etc.
Ces interruptions ont pour effet de dérouter l'exécution vers des logiciels appelés GESTIONNAIRES D'INTERRUPTIONS (qui font, en général, partie des pilotes d'équipements). Ces logiciels ont pour but d'effectuer l'action la plus appropriée au traitement de l'événement en question (par exemple, sur un signal « message prèt en réception » en provenance d'un périphérique, le gestionnaire ira lire le contenu du message et le rangera en mémoire). En fin d'exécution, le gestionnaire pourra soit redonner le contrôle au thread interrompu à l'endroit où il l'a prise, soit activer une routine du système d'exploitation pour effectuer des traitements supplémentaires ou réordonnancer les tâches.
Ces tâches liées au matériel sont toujours très prioritaires et préemptives par rapport aux tâches d'application. Elles sont en général de courte durée, ce qui leur permet de s'exécuter en parallélisme apparent par rapport aux tâches d'application, sans perturber notablement la durée d'exécution de celles-ci. C'est ce fonctionnement qui vous permet, par exemple, de télécharger pendant plusieurs dizaines de minutes un gros fichier à partir de la connexion internet tout en effectuant d'autres tâches sur votre ordinateur, sans que celles-ci vous paraîssent perturbées.


IV.3.3.5.TERMINAISON D'UN PROCESSUS:

La terminaison d'un processus correspond à l'arrèt d'activité du dernier thread associé à ce processus. Cette arrèt peut survenir de plusieurs façons:
  • Terminaison normale: l'exécution des instructions du thread peut être parvenue à son terme. Dans ce cas, le thread repasse le contrôle au système d'exploitation, qui effectue alors les opérations nécessaire à l'élimination du processus.
  • Terminaison forcée: le thread peut être interrompue à un endroit quelconque de son exécution par un signal d'arrêt en provenance d'un autre logiciel, du système d'exploitation ou d'un équipement matériel (signal d'alarme, signal horaire, etc.). Comme dans le cas précédent, le système d'exploitation effectue alors les opérations nécessaire à l'élimination du processus. On dit souvent que le processus est tué par le signal.
Dans les deux cas, le système d'exploitation libère la mémoire allouée au processus, qui repasse à l'état DORMANT.


IV.4.PILOTAGE DES EQUIPEMENTS MATERIELS:


IV.4.1.MECANISME GENERAL:

Le schéma suivant représente le mécanisme général de pilotage des équipements matériels par les processus logiciels (les composants matériels sont en gris foncé, les composants logiciels en gris clair, les flux de données ou de commandes en rouge):


Pilotage des équipements matériels
DESCRIPTION DU MECANISME:
  • Le système d'exploitation offre aux processus utilisateurs des outils permettant le pilotage des équipements matériels. Ces outils sont des REQUETES, sortes de messages qu'un processus utilisateur peut transmettre au système d'exploitation, via l'activation d'un HANDLER approprié. Ces requètes peuvent concerner soit des échanges de données (par exemple, requète de lecture ou d'écriture de données sur une clef USB), soit des commandes (éjection d'un CD de son lecteur, interrogation de l'état du périphérique, etc.).
  • A la réception de ces requètes, le système d'exploitation les analyse pour vérifier leur cohérence (le matériel existe-t-il ? le pilote est-il bien configuré ? etc.), puis il vérifie que l'équipement n'est pas déjà utilisé.
  • Si l'équipement n'est pas libre, le système d'exploitation peut, suivant la requète, mettre le processus en attente de sa libération, ou simplement le prévenir de son indisponibilité.
  • Si l'équipement est libre, il va transmettre au logiciel PILOTE (en anglais: DRIVER) de l'équipement les commandes et données correspondant à la requète.
  • Le PILOTE va alors se charger de réaliser les échanges d'information avec l'équipement matériel correspondant aux commandes et aux transfers de données demandés, via le BUS concerné.
  • Le PILOTE est également capable de détecter des messages ou signaux d'alarme, de compte-rendu ou de survenue d'événements en provenance de l'équipement et de les communiquer au système d'exploitation. Ces messages peuvent être utilisés par le système d'exploitation pour provoquer des interruptions de programme afin de traiter les événements concernés (exemple: survenue d'un message urgent, alarme de fonctionnement, etc.).


IV.4.2.CARACTERISATION DES PILOTES:

La conception d'un pilote d'équipement donné doit tenir compte non seulement des caractéristiques physiques et fonctionnelles de cet équipement, mais aussi de l'environnement matériel et logiciel dans lequel il va être intégré. Ce pilote doit donc assurer:
  • Le traitement du protocole de transmission spécifique au BUS dans lequel l'équipement doit être intégré.
  • Le traitement des procédures de contrôle commande propres à l'équipement.
  • Le dialogue avec le noyau du système d'exploitation.
De ce fait, un pilote d'équipement est toujours conçu pour s'intégrer dans l'environnement d'un système d'exploitation donné (et même une version de ce système d'exploitation), et à gérer un équipement ou une gamme d'équipements bien défini, destinée à s'intégrer à un type de BUS donné.

Le choix d'un pilote dépend donc:
  • Du type et de la version du système d'exploitation ( windows XP, linux 6.2, etc..).
  • Des spécifications techniques du bus d'accueil (PCI, AGP, FSB, USB, etc.).
  • De la marque et du type de l'équipement quipement (ex: carte graphique nvidia ge-force xxx).

Lorsque les équipements concernés sont des interfaces avec la périphérie, les requètes permettent de traiter les opérations d'entrées-sorties de données. Les pilotes sont alors des pilotes de périphériques et les équipements sont des modules d'interface enfichés dans les BUS d'entrée-sortie.


IV.5.GESTION DU SYSTEME DE FICHIERS:


IV.5.1.DEFINITION ET CARACTERISATION:

Les systèmes d'exploitations courants, tels que window, mac, linux, etc, stockent les données rémanentes (c'est à dire les données qui doivent être conservées entre deux utilisations) dans des entités appelées FICHIERS.


Le contenu d'un fichier est un ensemble de données cohérentes entre elles: par exemple, un fichier représentera un texte, une image, un programme.


Un fichier est identifié localement par son NOM et son EXTENSION:
  • Le NOM d'un fichier est un identificateur littéral de longueur varible qui contribue à son identification par le système d'exploitation.
  • Ce nom peut être accompagné d'une EXTENSION, qui est également une chaîne littérale, séparée du nom par le caractère "."


EXEMPLE:
La chaîne MonFichier.MonExtension peut représenter un fichier de nom « MonFichier » et d'extension  « MonExtension ».


En général, l'extension d'un fichier caractérise le TYPE de ce fichier, c'est à dire la nature des données qu'il mémorise et leur organisation (format de représentation des données). Le type et identifié par une extension de 3 ou 4 caractères, en général.


EXEMPLES:
fichier texte: monfichier.txt (nom = monfichier, extension = txt)
photographie au format jpeg: maphoto.jpg (nom = maphoto, extension = jpg)
programme exécutable: paint.exe (nom = paint, extension = exe)


La recommandation appelée Multipurpose Internet Mail Extensions ("types M.I.M.E") propose une normalisation des extensions en fonction des types de fichiers.


IV.5.2.ASPECT PHYSIQUE:

Physiquement, un fichier est représenté par un ensemble de zones qui lui sont réservées dans une mémoire de stockage. Dans ces zones sont enregistrées les données mémorisées dans le fichier à un instant donné. Les mémoires de stockage les plus connus sont:
  • Les disques durs, fixes et amovibles.
  • Les lecteurs de disquettes.
  • Les CD et DVD Rom.
  • Les périphériques de stockage U.S.B (clefs USB, appareils photos, baladeurs...).
  • Les mémoires flash.
  • Etc.


IV.5.3.ORGANISATION DES FICHIERS:

La plupart des systèmes d'exploitation organisent les fichiers sous forme d'arborescences. L'ensemble des fichiers contenus sur une mémoire de stockage constitue une arborescence possédant une racine unique.
Dans ce type d'arborescence, les fichiers sont toujours rattachés à des noeuds terminaux (les «feuilles» de l'arbre. Attention, l'arbre ci-dessus est représenté la cime dirigée vers le bas). Les éléments rattachés à des noeuds non terminaux ne sont pas des fichiers mais des REPERTOIRES.
Un répertoire est un « conteneur » pouvant accueillir des fichiers ou d'autres répertoires (sous-répertoire). En anglais, un répertoire se traduit par «Directory». Cet anglicisme est souvent employé dans les textes français.


REMARQUES:
  • Un identifiant de répertoire a la même structure qu'un nom de fichier: il peut également comprendre un nom et une extension.
  • Un répertoire sans contenu va forcément se trouver rattaché à un noeud terminal de l'arborescence. Un noeud terminal peut donc être aussi bien un répertoire vide qu'un fichier.


Arborescence de fichiers
Dans l'arborescence ci-contre:
  • Données n'est pas un noeud terminal. C'est donc un répertoire situé sous la racine.
  • Document.pdf est un noeud terminal. Il peut donc s'agit soit d'un fichier situé dans le répertoire Donnees (probablement un document codé au format Acrobat reader), soit d'un sous-répertoire vide du répertoire Données.
  • Images n'est pas un noeud terminal. C'est donc un sous-répertoire de Donnees.
  • Image_1.jpg, noeud terminal, est probablement un fichier du sous-repertoire Images contenant une image codée au format jpeg (extension .jpg), mais il peut aussi s'agir d'un répertoire vide.
  • De même, VideoMaker.exe est probablement un fichier contenant un programme exécutable (extension .exe), situé dans le sous-répertoire TraitementImage du répertoire Programmes (etant donné son nom et son emplacement dans l'arborescence, il serait logique de penser qu'il s'agit d'un logiciel de traitement de vidéos). Il peut aussi s'agir d'un répertoire vide.
  • Etc.


Remarquons que ce type d'organisation permet d'une part de classer les fichiers d'une façon hiérarchique, par thèmes, sous-thèmes, etc, et d'autre part de mieux contrôler l'accès des utilisateurs à tel ou tel fichier.


L'organisation des fichiers est pratiquement la même sous les systèmes d'exploitation MAC-OS, WINDOWS, UNIX et LINUX.


IV.5.4.CHEMIN D'ACCES A UN FICHIER OU UN REPERTOIRE:

IV.5.4.1.CHEMIN D'ACCES ABSOLU:

Le CHEMIN D'ACCES ABSOLU à un fichier ou à un répertoire données donné est défini par la suite des noms des répertoires et sous-répertoires attachés aux noeuds qui relient la racine de l'arborescence à ce fichier ou ce répertoire.


EXEMPLES:
Dans l'arborescence figurant sur le schéma ci-dessus:
  • Le chemin d'accès absolu du fichier Image2.png est défini par la suite d'identifiants: Racine, Données, Images, Image2.png.
  • Le chemin d'accès absolu du répertoire TraitementTexte est défini par la suite d'identifiants: Racine, Programmes, TraitementTexte.
Le chemin d'accès absolu est toujours descendant, de la racine vers l'objet en question. Il est toujours unique, et permet donc d'identifier un fichier ou un répertoire d'une manière unique.


IV.5.4.2.CHEMIN D'ACCES RELATIF:

Un CHEMIN D'ACCES RELATIF d'un fichier par rapport à un répertoire R donné est défini par la suite des noms des répertoires et sous-répertoires attachés aux noeuds qui relient le répertoire R à ce fichier. Contrairement au chemin d'accès absolu, le chemin d'accès relatif peut être amené à remonter vers la racine de l'arborescence.


EXEMPLE:
Dans l'arborescence figurant sur le schéma ci-dessus, le chemin d'accès relatif du fichier Ecrivain.exe par rapport au répertoire TraitementImage est défini par la suite d'identifiants: TraitementImage, Programmes, TraitementTexte, Ecrivain.exe. Nous pouvons constater que le chemin remonte d'abord vers la racine (de TraitementImage vers Programmes), avant de redescendre vers Ecrivain.exe.


Nous pouvons constater qu'un chemin d'accès relatif n'est pas forcément unique.


IV.5.4.3.NOTATION DES CHEMINS D'ACCES-CAS GENERAL:

Un chemin d'accès est toujours noté sous la forme d'une chaîne de caractères formée par la concaténation des identificateurs de noeuds qui le compose, dans laquelle sont intégrés des caractères de séparation et des signes conventionnels. Dans les systèmes d'exploitation qui s'inspirent d'UNIX, de type UNIX (UNIX, LINUX, etc...), les conventions suivantes sont adoptées:
  • Tous les fichiers et répertoires, quelle que soit leur localisation physique, sont rattachés à une même arborescence. La racine est donc unique pour tout le système de fichiers. Elle est notée par un caractère "/" placé en début de chaîne.
  • Le caractère "/" est également utilisé pour séparer les noms des noeuds dans le chemin d'accès.
  • Le caractère "." est utilisé pour désigner le répertoire "courant".
  • la chaîne de caractères ".0." est utilisée pour désigner le répertoire "père" du répertoire dont le nom le précède dans le chemin d'accès.
EXEMPLE N° 1:
Dans un système de type UNIX, le chemin d'accès absolu au fichier Image2.png situé dans le sous-répertoire Images du répertoire Données s'écrira:
/Donnees/Images/Image2.png
Le slash en début de chemin représente la racine. Les autres servent de séparateurs. Le fichier est atteint en descendant successivement dans les sous-répertoires Données et Images. Si un autre fichier Image2.png existait dans un autre répertoire, son chemin d'accès serait différent. Le chemin d'accès absolu à un fichier permet donc d'identifier ce fichier sans ambiguité.


EXEMPLE N° 2:
Dans un système de type UNIX, si le répertoire courant est TraitementImages, le chemin d'accès relatif au fichier Ecrivain.exe s'écrira:
./../TraitementTexte/Ecrivain.exe
Le caractère « . » de début marque le répertoire courant, puis la chaîne « .. » indique qu'il faut remonter d'un niveaux dans l'arborescence, ce qui nous amène dans le répertoire Programmes. Puis, on descend dans TraitementTexte pour atteindre Ecrivain.exe.


REMARQUE:
Lorsqu'un chemin d'accès ne débute pas par un caractère /, il s'agit forcément d'un chemin d'accès relatif.


IV.5.4.2.PARTICULARITE DE WINDOWS:

Le système Window associe à tout périphérique de stockage un nom de lecteur, composé d'une lettre et du caractère ":" (par exemple, le premier disque dur a pour nom de lecteur "c:", le lecteur de disquette "a:". Les noms des lecteurs disponibles apparaîssent dans le menu "poste de travail"). Un lecteur peut correspondre à un périphérique physique entier ou bien à une partie de l'espace de ce périphérique (partition d'un disque dur, par exemple).


Sous Windows, chaque lecteur renferme une arborescence de fichiers distincte de celle des autres lecteurs. Il y a donc autant d'arborescence que de lecteur, la racine de chaque arborescence identifiant ce lecteur. De ce fait, on trouvera en tête du chemin d'accès le nom du lecteur racine (ex: c: pour le premier disque dur, a: pour le premier floppy, etc...).


D'autre part, le caractère de séparation est l'anti-slash ("\") et non le slash ("/"). Pour le reste, la syntaxe reste la même.


EXEMPLE:
Le schéma suivant représente une arborescence de fichiers située dans le lecteur c: (premiere partition du disque dur):


Arborescence de fichiers sous Windows


Le chemin d'accès absolu du fichier Kilimanjaro.jpg est:
c:\Mes Donnees\Mes photos\photos_2009\kilimanjaro.jpg
( c:\ désigne la racine du lecteur C (première partition du disque dur, puis on descend l'arborescence par les sous-répertoires Mes Données, Mes Photos et photos_2009 pour atteindre le fichier kilimanjaro.jpg.


D'autre part, si le répertoire courant est photos_2006, le chemin d'accès relatif au même fichier est:
./../photos_2009\kilimanjaro.jpg
(. est le répertoire courant, .. nous ramène au répertoire pêre du répertoire courant, soit Mes photos, puis on redescend vers photos_2009 et kilimanjaro.jpg).


AUTRES REMARQUES:
  • Lorsqu'un chemin d'accès ne débute pas par un nom de lecteur, il s'agit forcément d'un chemin d'accès relatif à la racine du lecteur courant.
  • Lorsqu'un chemin d'accès débute par ./, il s'agit forcément d'un chemin d'accès relatif au répertoire courant sur le lecteur courant.


IV.6.L'INTERFACE UTILISATEURS:


IV.6.1.INTRODUCTION:

Pour les utilisateurs actuels des systèmes informatiques «grand public», la présence sur l'écran de leur PC d'objets graphiques tels que les fenêtres, les icônes ou les barres de tâches semble aller de soi. Il leur paraît tout naturel de pouvoir les manipuler, à l'aide d'une souris où directement en touchant un écran tactile, d'ouvrir une fenêtre ou de lancer une application par un «double clic» sur une icône.
Pourtant, cette manière de gérer l'interface entre l'utilisateur et la machine ne date que du milieu des années 1980. Elle à été imaginée par la firme Mackintosh (future APPLE), puis reprise par pratiquement tous les créateurs de logiciels.
Les premiers systèmes informatiques étaient livrés sans écran ni souris (équipement qui n'existait d'ailleurs pas): l'utilisateur ne disposait comme interface de commande que d'une «télétype», sorte de machine à écrire sur le clavier de laquelle il pouvait saisir des commandes textuelle à destination du système d'exploitation ou des applications. Les messages de l'ordinateur s'imprimaient sur un rouleau de papier (ou, plus tard sur un écran), sous forme de lignes de texte.



IV.6.2.SHELL D'UN SYSTEME D'EXPLOITATION:

IV.6.2.1.DEFINITION:

On appelle SHELL d'un système d'exploitation un programme permettant à ce système d'acquérir des commandes en provenance des utilisateurs humains et d'afficher des messages à destination de ces utilisateurs. Un shell est donc un INTERFACE HOMME-MACHINE (I.H.M).


IV.6.2.2.FONCTIONNEMENT GLOBAL D'UN SHELL:

Un fois lancé, un shell est un processus comme un autre dont la vocation est de se mettre en attente des commandes des utilisateurs, de lancer les handlers correspondant aux commandes reçues, puis d'afficher les résultats de ces commandes ou des messages de signalisation. Des systèmes comme UNIX acceptent que plusieurs shells soient lancés simultanément, ce qui permet à plusieurs utilisateurs de travailler en même temps sur ces systèmes.
Le fonctionnement général d'un shell peut se résumer à l'algorithme suivant:


TANT QUE LE SHELL EST EN FONCTION:
  • Il se met en attente de la réception des commandes en provenance de l'utilisateur
  • LORSQU'IL RECOIT UNE COMMANDE:
    • Il l'analyse (analyse syntaxique et sémantique)
    • SI LA COMMANDE EST CORRECTE:
      • Il active les {pilotes|handlers} nécessaires à l'exécution de cette commande
      • En fin d'exécution, il récupère le compte-rendu d'exécution et l'affiche pour l'utilisateur
    • SINON:
      • Il affiche un compte-rendu d'erreur pour l'utilisateur
  • Il retourne en attente de la réception des commandes


IV.6.2.3.LES SHELLS EN LIGNES DE COMMANDE:

Dans ce type de shell, l'utilisateur utilise, pour communiquer avec le système d'exploitation, un LANGAGE DE COMMANDE (appelé aussi LANGAGE DE SHELL). Ce langage, qui se présente sous forme textuelle, permet de manipuler les différents objets du système (processus, fichiers, connexions, etc.) en activant les handlers correspondants.
Commandes et réponses se font sous la forme de lignes de textes. Pour signaler qu'il est en attente de commande, le système d'exploitation affiche sur l'écran un ou plusieurs caractères appelés «invite de commande» (ou PROMP):


EXEMPLE (EN MODE CONSOLE DE RECUPERATION WINDOW):


Console Windows
  • Dans la première ligne, c:\php4>) correspond à l'affichage de l'invite de commande. Ce prompt indique ici que le répertoire courant est c:\php4. L'utilisateur tape alors la commande «dir» devant l'invite de commande.
  • Cette commande déclenche le listage du répertoire courant: les premières lignes donnent des indications sur le disque dur, puis les fichiers et sous répertoires sont listés ligne par ligne. Chaque ligne comprend: la date de création, l'heure de création, le volume en octets et le nom du fichiers ou du répertoire.
  • En fin d'affichage, le prompt est de nouveau affiché, pour signaler à l'utilisateur que le système est prèt à recevoir une autre commande.


NOTA: La commande ls -l, tapée dans un shell de LINUX donne un résultat très similaire.


La commande tapée par l'utilisateur (ici, commande dir) déclenche l'activation d'un handler système. Ce programme lance l'exécution d'un processus (dans l'exemple, c'est le processus dir, qui liste le répertoire en cours). Les réponses qui s'affichent correspondent à des opérations de sortie de données (lignes de caractères) effectuées par ce processus. Lorsqu'un processus est lancé dans un shell, celui-ci devient pour ce processus un espace de communication avec l'utilisateur.


IV.6.2.4.LES SHELLS GRAPHIQUES:

PRINCIPE:
Avec ce type de shell, l'utilisateur manipule essentiellement des «objets graphiques» sensés représenter les objets du système. Les objets graphiques de base sont les ICÔNES et les FENÊTRES. La plupart des commandes sur ces objets sont effectuées au moyen de la souris, par l'intermédiaire de 4 actions simples, que l'on peut présenter dans le tableau suivant:


ACTIONEFFET
Pointer l'objet + cliquer bouton gauche + relacher L'objet est sélectionné. Il passe en avant plan du bureau
Pointer l'objet+cliquer bouton gauche + déplacer le curseur souris + relacher L'objet est déplacé en même temps que le curseur souris (c'est la fonction «drag and drop»).
Pointer l'objet + clic bouton droit Un menu à option s'ouvre. L'utilisateur peut sélectionner, à l'aide de la souris, une commande à exécuter sur l'objet (pour lancer son l'exécution, pointer+cliquer bouton gauche).
Pointer l'objet + double clic bouton gauche Suivant la nature de l'objet pointé, le système d'exploitation va lancer le processus de traitement que le système d'exploitation associe à ce type d'objet (si l'objet est un répertoire, il va ouvrir une fenêtre pour l'afficher, s'il s'agit d'un document, il va ouvrir un traitement de texte, s'il s'agit d'un fichier exécutable, il va lancer son exécution, etc.
Si aucun traitement n'est associé à l'objet, certains systèmes d'exploitation ouvrent une autre fenêtre qui permettra à l'utilisateur de choisir ce traitement, c'est à dire d'associer un logiciel de traitement au type d'objet en question (fenêtre « ouvrir avec...» de windows).


Le principal avantage de ce type de shell est que son utilisation est intuitive. Il ne nécessite donc que très peu d'apprentissage. Un inconvénient est que l'utilisateur n'a pas forcément une conscience précise des conséquences des actions qu'il déclenche.


LES ICONES:
Une icône peut représenter tout objet informatique géré par le système d'exploitation. Il peut s'agir:
  • D'un fichier.
  • D'un répertoire.
  • D'un RACCOURCI vers un fichier ou un répertoire.
  • D'un périphérique matériel.
  • D'une connexion réseau.
  • etc.
REMARQUE:
Un raccourci vers un fichier ou un répertoire est un fichier particulier qui contient uniquement le chemin d'accès vers le fichier ou le répertoire en question. Une action quelconque sur un raccourci produit le même effet que sur l'objet pointé (sauf la duplication ou la suppression).
Le volume d'un raccourci est donc en général beaucoup plus faible que celui du fichier ou du répertoire qu'il pointe. De ce fait, utiliser un raccourci pour atteindre un fichier depuis un répertoire donné est bien plus économique en terme d'espace disque que de recopier le fichier dans le répertoire.


L'image et le nom associés à l'icône permettent à l'utilisateur de reconnaître intuitivement le type d'objet dont il s'agit. Sinon, la commande pointer+clic droit sur l'icône permet d'ouvrir un menu listant les actions possibles sur ce type d'objet. Dans cette liste, l'option «propriétés» permet d'accéder à tous les renseignements nécessaires sur le type et les propriétés spécifiques de cet objet.


NOTION DE BUREAU:
La plupart des shells graphiques supportent la notion de BUREAU. Du point de vue graphique, le bureau est une partie de l'écran dans laquelle apparaîssent sous forme d'icônes les objets auquel un utilisateur peut accéder et qu'il veut garder «à portée de main» (répertoires, fichiers, applications, etc.).
Du point de vue informatique, un bureau est simplement un RÉPERTOIRE associé à un utilisateur particulier. Lorsque cet utilisateur se connecte au système d'exploitation, celui-ci affiche sur l'écran (sous forme d'icônes) les différents objets contenus par ce répertoire. L'utilisateur a la possibililité de modifier le contenu du répertoire BUREAU (de la même manière que n'importe quel autre répertoire) afin de particulariser son contenu et son aspect. Il y a donc autant de répertoire bureau qu'il y a d'utilisateur déclaré sur la machine.


LES OBJETS FENETRES:
Une FENÊTRE est une zones d'écran allouée à la communication avec un processus particulier. En général, lorque le système d'exploitation lance un processus, il lui attribue immédiatement une fenêtre. Il existe pourtant des processus qui s'exécutent «en arrière plan», sans utiliser de fenêtre. Ce sont les processus utilitaires du système d'exploitation, appelés SERVICES sous WINDOWS ou DEAMONS sous LINUX/UNIX.


Les fenêtres peuvent se superposer, permettant de simuler l'empilement de documents sur un bureau. L'utilisateur peut également déplacer les fenêtres sur l'écran, modifier leur taille, l'ordre de leur empilement, les fermer et les ouvrir, etc, grâce au logiciel GESTIONNAIRE DE FENÊTRES (ou WINDOW MANAGER) intégré au shell.


Une seule des fenêtres affichée sur l'écran est dite «ACTIVE», c'est à dire capable de prendre en compte les intéractions avec l'utilisateur. Le fait de cliquer sur une fenêtre la rend active au détriment de l'ancienne fenêtre active.


Certaines fenêtres sont dites de type «CONSOLE». Dans ce cas, elles ne peuvent saisir ou afficher que du texte. Elles permettent d'afficher un shell en ligne de commande à l'intérieur d'un shell graphique. Sous window, ce type de fenêtre s'affiche par le menu démarrer, sous menu exécuter, commande cmd. Sous Linux ou Unix, il faut ouvrir une fenêtre de type console.


D'autres fenêtres sont dites «GRAPHIQUES», car elles permettent d'afficher les objets graphiques caractéristiques des interfaces homme-machine graphiques (boutons, images, etc.). L'image suivante représente l'affichage de trois fenêtres:

Fenetres graphiques
  • La fenêtre HDD (C:) est une fenêtre graphique listant le répertoire racine du disque dur C de l'ordinateur.
  • La fenêtre graphique PHP4 est le résultat du double clic sur l'icône php4, dans la fenêtre précédente. Cette action a provoqué l'affichage dans la deuxième fenêtre du contenu du répertoire c:/php4. Nous pouvons constater que le contenu listé est le même que celui qui a été obtenu plus haut par l'utilisation de la commande en ligne dir.
  • Enfin, la fenêtre c:/WINDOWS/system32/cmd.exe est une fenêtre console qui a été obtenue en utilisant le menu DEMARRER>Executer>cmd>cd \php4\dir. Nous voyons que la liste affichée dans cette fenêtre est également la même que celle obtenue par le shell en ligne.


IV.6.3.LES COUCHES GRAPHIQUES DES SYSTEMES D'EXPLOITATION:

Les IHM graphiques de type Mackintosh, que l'on trouve sous windows ou dans les distributions linux sont des «surcouches» de ces systèmes d'exploitation. Leur rôle est de présenter graphiquement les intéractions entre l'utilisateur et le système: il est, par exemple, très possible d'installer un système linux ou unix sans sa «couche graphique». Dans ce cas, l'écran n'affichera qu'en deux couleurs et ne sera pas structuré en fenêtres. L'utilisateur ne disposera que d'un shell «en ligne». Cette solution est souvent utilisée dans les applications industrielles n'ayant pas besoin d'un I.H.M. élaboré, ou bien nécessitant de s'affranchir des perturbations que l'interface graphique peut engendrer.


En ce qui concerne le système Windows, la couche graphique n'est pas aussi bien identifiée. Cependant windows (au moins les versions anciennes), a été construit autour du système MS-DOS, qui ne possédait qu'un interface «en ligne». Il est d'ailleurs toujours possible de démarrer les versions récentes de windows en mode «CONSOLE MS-DOS».



Retour accès cours Retour sommaire cours